from aiogram import Dispatcher
from aiogram.filters import Command
from aiogram_dialog import DialogRegistry

from .create_order import proxy_dialog
from .help import help_dialog, missing_geo_dialog, soft_proxy_dialog
from .language import language_dialog
from .orders.authorization_types import authorization_types_dialog, create_ip_dialog
from .orders.order_details import order_details_dialog
from .orders.orders_history import orders_history_dialog
from .orders.rotation_period import rotation_period_dialog
from .payment.payment import payment_dialog
from .payment.payments_history import payments_history_dialog
from .profile import user_profile_dialog
from .proxies.proxy_details import proxy_details_dialog
from .start import start, start_dialog
from .subscription import (
    buy_subscription_dialog,
    manage_subscription_dialog,
    subscription_info_dialog,
)
from .vpn import buy_vpn_dialog, vpn_router_dialog


def register_handlers(dp: Dispatcher):
    dp.message.register(start, Command(commands="start"))


def register_dialogs(registry: DialogRegistry):
    registry.register(start_dialog)
    registry.register(user_profile_dialog)
    registry.register(help_dialog)
    registry.register(missing_geo_dialog)
    registry.register(soft_proxy_dialog)
    registry.register(orders_history_dialog)
    registry.register(order_details_dialog)
    registry.register(proxy_details_dialog)
    registry.register(authorization_types_dialog)
    registry.register(create_ip_dialog)
    registry.register(rotation_period_dialog)
    registry.register(payment_dialog)
    registry.register(proxy_dialog)
    registry.register(language_dialog)
    registry.register(payments_history_dialog)
    registry.register(subscription_info_dialog)
    registry.register(manage_subscription_dialog)
    registry.register(buy_subscription_dialog)
    registry.register(buy_vpn_dialog)
    registry.register(vpn_router_dialog)
